#ifndef THREADPOOL_H_
#define THREADPOOL_H_
#include<common.h>

/*
ThreadPoll 异步任务（无返回值）单链表实现无锁队列
void trdpoll_init(int trd_num);
//线程数通过参数传递，调参在一个文件中进行
void trdpoll_addwork(void (*workfunc)(void *), void *arg);
*/

void trdpool_init(int trd_num);

void workfunc_udf(void *);
//线程池中线程在执行的函数
void* trdpool_worktrd(void *tnode);

//线程池链表的节点
struct trd_node{
    pthread_mutex_t *trd_lock;
    pthread_cond_t *trd_flg;
    //pthread_cond 需要一个条件变量保护
    //我是无锁线程池也不会出现访问错误的
    //理论上我不需要系统提供的锁，但是系统提供的函数有这个参数
    void (*workfunc)(void *);
    void *arg;
    trd_node *nxt;
};


#endif
